import axios from 'axios';
import { Pagination, PaginationData } from '@/types/global';

export interface HostParams extends Pagination {
  keyword?: string;
  groupId?: string; // 分组ID
}
export interface HostVO {
  createOrgId: string; // 创建组织ID
  createOrgName: string; // 创建组织名称
  createTime: string;
  creator: string; // 创建人id
  creatorName: string; // 创建人名称
  deleteFlag: string; // 是否删除,1已删除,0正常
  description: string; // 主机描述
  id: string;
  groupCode: string; // 分组编码
  groupDescription: string; // 分组描述
  groupId: string; // 分组ID
  ip: string; // 主机IP
  port: string; // 主机端口
  tenantId: string; // 租户ID
  versionTime: string; // 时间戳
}
export interface CreateHostDTO {
  ip: string; // 主机IP
  port: string; // 主机端口
  description: string; // 主机描述
  groupId: string;
}
export interface UpdateHostDTO extends CreateHostDTO {
  id: string;
}

export function getHostList(data: HostParams) {
  return axios.post<PaginationData<HostVO>>('hub/host/page', data);
}

export function createHost(data: CreateHostDTO) {
  return axios.post('hub/host/add', data);
}
export function updateHost(data: UpdateHostDTO) {
  return axios.post('hub/host/update', data);
}

export function getHostDetail(id: string) {
  return axios.get<HostVO>(`hub/host/detail?id=${id}`);
}

export function deleteHost(id: string) {
  return axios.post(`hub/host/delete/${id}`);
}
